import java.util.Scanner;

//给定一个正整数 n，编写一个函数，获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数（也被称为汉明重量）
public class test1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(hammingWeight(n));
    }
    public static int hammingWeight(int n) {
        //我们需要先定义对象来记录个数
        int count = 0;
        //一个二进制数,如果从0开始算起,一共是31位
        for(int i=0;i<32;i++){
            //我们左移1,让1与原数进行比对
            //即:对比结果为1(true) 就会++ 使用与运算,如果当对应位为0时,那么结果就会为0
            //因为与运算不管什么情况下,只要有0,结果就为0,而将1进行左移之后,出了对应位置,其他地方都是0
            if((n & (1 << i))!=0){
                count++;
            }
        }
        return count;
    }
}
